/**
 * 
 */
package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;


import model.Artikel;
import model.Bewertung;
import model.BewertungListe;
import model.artikelListe;

import db.DbConnection;

/**
 * 
 *	
 */
public class BewertungDAO {

	final String selectBewertung = "SELECT * FROM Bewertung where VerName=? ";

	public BewertungListe getBewertungenByKaeufer(String Verkaeufer) throws SQLException {
		
		Connection con = DbConnection.getInstance();
		
		PreparedStatement prepstmt = con.prepareStatement(this.selectBewertung);
		prepstmt.setString(1, Verkaeufer);
		BewertungListe bewertung = new BewertungListe();
		ResultSet rs = prepstmt.executeQuery();
	 
		while (rs.next()) {
			
			String kommentar = rs.getString("Kommentar");
			double pK = Double.parseDouble(rs.getString("punkteKommunication"));
			double pV = Double.parseDouble(rs.getString("punkteVersand"));
			double pA = Double.parseDouble(rs.getString("punkteArtikel"));
			String aName = rs.getString("artikelName");
			String verName = rs.getString("VerName");
			String kafName = rs.getString("KafName");
		
			bewertung.add(new Bewertung(pK, pV, pA, kommentar, verName, kafName, aName ));			
		}		
		return bewertung;
	}
	
		public boolean speichereBewertung(Bewertung b) throws SQLException {
			boolean toReturn;
			Connection con = DbConnection.getInstance();
			final String insert ="insert into Bewertung(ID, Kommentar, VerName, KafName, artikelName, punkteKommunication, punkteVersand, punkteArtikel) values(?,?,?,?,?,?,?,?)";
			PreparedStatement prepstmt = con.prepareStatement(insert);
			prepstmt.setInt(1, b.getArtikelId());
			prepstmt.setString(2, b.getKommentar());
			prepstmt.setString(3, b.getVerName());
			prepstmt.setString(4, b.getKafName());
			prepstmt.setString(5, b.getArtikelName());
			prepstmt.setDouble(6, b.getPunkteKommunication());
			prepstmt.setDouble(7, b.getPunkteVersand());
			prepstmt.setDouble(8, b.getPunkteArtikelZustand());

			if( prepstmt.executeUpdate()==1){
				
				toReturn=true;
			}else{
				toReturn = false;
			}
			
			return toReturn;
		}

	public artikelListe getVerkaeufer(String user){
			final String selection = "Select Artikel.ID, Verkaeufer, Kaeufer, Name, EndDatum From Artikel  where Kaeufer = ? and Artikel.ID not in (Select ID From Bewertung)";
			artikelListe listeVerkaeufer = new artikelListe();
			Connection con = DbConnection.getInstance();
	
				try {
					PreparedStatement	prepstmt = con.prepareStatement(selection);
					prepstmt.setString(1, user);
					ResultSet rs = prepstmt.executeQuery();
					while(rs.next()){
						int id = rs.getInt("ID");
						String verkaeufer = rs.getString("Verkaeufer");
						String kaeufer = rs.getString("Kaeufer");
						String name = rs.getString("Name");
						Date enddatum = new Date(rs.getLong("EndDatum"));
						listeVerkaeufer.add(new Artikel(id, verkaeufer, kaeufer, name, enddatum));
					}
				} catch (SQLException e) {
					
					e.printStackTrace();
				}
				
				
		     return listeVerkaeufer;
		
		}
}
